#pragma once
/*
 *	Copyright © 2008 University of Houston
 *	All rights reserved.
 */
#include <vector>
#include "resultsfilter.h"

using namespace std;

class resultsComparator : public resultsFilter
{
	// Nothing.
};

class separationComparator : public resultsComparator
{
	/*
	 * Checks to see the separation gap between the lowest of the longConns
	 * and the highest of the shortConns.
	 * @see resultsFilter::doFilter
	 * @return vector<analyzerResultsList>	
	 * Returns a vector containing the [0] lowest-value among all of the
	 * long connections, and [1] the highest-value among the short ones.
	 */
	vector<analyzerResultList> doFilter(vector<analyzerResultList>* longConns,
								   vector<analyzerResultList>* shortConns);

	/*
	 * Finds the maximal item among a set of results. Finds either the
	 * lowest item or the highest, depending on the value of [bLow].
	 * @param 	results		Vector of results
	 * @param 	bLow		Set to True for the lowest, False for the highest.
	 * @return analyzerResult	
	 * The highest or lowest result.
	 */
	analyzerResult	findMaximals(analyzerResultList *results, bool bLow=true);
};

